// 目录创建之同步实现
const fs = require('fs')
const path = require('path')

/**
 * 1. 将来调用时需要接受类似于 a/b/c 这样的路径，路径采用 / 连接
 * 2. 利用 / 分隔符对路径进行拆分为数组进行管理 ['a','b','c']
 * 3. 对上述数组进行遍历，需拿到每一项，然后与前一项进行拼接 /
 * 4. 判断对拼接后的路径是否有可操作性权限，如果有则证明存在，否则需要执行创建
 */

function makeDirSync (dirPath) {
  let items = dirPath.split(path.sep)
  // console.log(items)
  // // [ 'a/b/c' ] 原因是windows系统下路径分隔符是 \ ，所以没有进行正确分割
  // // [ 'a', 'b', 'c' ]使用 \\ 后能正确分割了
  for(let i = 1;i <= items.length; i++) {
    // 拼接路径
    let dir = items.slice(0,i).join(path.sep)
    try {
      // 对拼接路径进行权限查询
      fs.accessSync(dir)
    } catch (error) {
      // 原生的目录创建api
      fs.mkdirSync(dir)
    }
  }
}

 makeDirSync('a\\b\\c')
